In the case of designing a geometry (geometric modeling) of an object assuming free-form surfaces by, e.g., a CAD-based method, a designer typically has hitherto created a surface expressed by a so-called wire frame. The creation thereof involves the steps of specifying a plurality of points (referred to as nodes) in a three-dimensional space through which the surface passes and causing a computer to compute a boundary curvilinear network which connects the plurality of specified nodes by use of predetermined functions.
It is thus possible to form a multiplicity of frame spaces encircled by the boundary curves (this type of process is hereinafter referred to as frame processing).
The boundary curvilinear network itself, which is formed by this frame processing, represents a rough geometry of the object that the designer intends to design. If a surface expressible by a predetermined vector function can be obtained by an interpolative computation in combination with the boundary curves encircling the respective frame spaces, it is feasible to create a free-form surface (which can not be prescribed by quadric functions) designed by the designer on the whole.
The surface stretched over the individual frame space constitutes a fundamental element which in turn forms the whole surface. This is known as a patch.
In this type of conventional CAD system, a cubic tensor product based on, e.g., easy-to-calculate Bezier formula and B-spline formula is employed as a vector function representing the boundary curvilinear network. The cubic tensor product is considered to be optimal to a mathematical expression of the free-form surface exhibiting no special characteristic in terms of geometry.
More specifically, in the free-form surface with no special geometric characteristic, when projecting points given in the space on an X-Y plane, the points projected thereon are in the great majority of cases arranged in regular matrices. It is a known fact that when the number of these projected points is expressed by m x n, the frame space concerned can easily be stretched by use of a quadrilateral patch expressed by the cubic Bezier formula.
This mathematical expression, however, involves a difficulty in the way of connecting the patches to each other, if applied to a surface exhibiting a geometric characteristic (for instance, a surface assuming a largely skewed geometry). It is required that a high-level mathematical computation be executed, and hence there arises a problem to make computer-based arithmetic operations complicated and huge.
Especially when framing the surface assuming an extremely skewed geometry, most of arrays of the specified points do not have any regularity. Therefore, the method of stretching the quadrilateral patch in the frame space is actually attended with a difficulty to shape a smooth free-form surface.
Proposed under such circumstances was a free-form surface preparing method (Japanese Patent application No. 15396/1986) arranged such that the frame space is shaped by using not the conventional quadrilateral patch but a so-called trilateral patch in which three ways are closed by, e.g., cubic Bezier curves.
Based on this free-form surface generating method, a boundary curve representing a boundary of the frame space undergoing frame processing and patch vectors T stretched over the frame spaces are namely given by the following formulae: ##EQU1## (Where, vector P.sub.x =vector P.sub.(11))
As shown above, there is adopted an expression which uses the vector function vector T based on the cubic Bezier formula.
Note that w in the formula (1) is expressed by the following formula: EQU w=1-u-v (2)
Therefore, the trilateral patch vector T in the formula (1) is expressible by use of a vector function vector T.sub.(u,v) as shown in the following formula: EQU T.sub.(u,v) =(1-u-v+uE+vF).sup.3 P.sub.(00) ( 3)
As a matter of fact, a vector P.sub.(00) in the formulae (1) and (3) is a positional vector representing one end of a boundary curve (this is referred to as a common boundary COM) of which, as illustrated in FIG. 4, the surface stretched over the adjacent two frame spaces, i.e., a first trilateral patch vector T.sub.(u,v)1 and a second trilateral patch vector T.sub.(u,v)2 are mutually possessed. This positional vector is formed of nodes specified on the occation of effecting frame processing together with a positional vector P.sub.(03) at the other end, a positional vector P.sub.P(30)1 of the first patch vector T.sub.(u,v)1, and a positional vector P.sub.(30)2 of the second patch vector T.sub.(u,v)2.
Thus, the first and second patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are encircled by three boundary curves consisting of nodal vectors P.sub.(00) -P.sub.(30)1 -P.sub.(03) -P.sub.(00) and P.sub.(00) -P.sub.(30)2 -P.sub.(03) -P.sub.(00). The curve between the nodal vectors P.sub.(00) and P.sub.(03) among those boundary curves constitutes the common boundary COM. This curve is prescribed as a cubic Bezier curve by two control point vectors P.sub.(01) and P.sub.(02) set respectively.
In contrast, a boundary curve between the nodal vectors P.sub.(00) and P.sub.(30)1 of the first patch vector T.sub.(u,v)1 and a boundary curve between the nodal vectors P.sub.(30)1 and P.sub.(03) are prescribed as cubic Bezier curves by sets of two control point vectors P.sub.(10)1, P.sub.(20)1 and P.sub.(21)1, P.sub.(12)1 which are set respectively.
Besides, a boundary curve between the nodal vectors P.sub.(00), P.sub.(30)2 of the second patch vector T.sub.(u,v)2 and a boundary curve between the nodal vectors P.sub.(30)2 and P.sub.(03) are similarly prescribed as cubic Bezier curves by sets of two control point vectors P.sub.(10)2, P.sub.(20)2 and P.sub.(21)2, P.sub.(12)2 which are set respectively.
In the formulae (1) and (3), the symbols E and F designate shift operators in directions u and v. The shift operators have relations defined by the following formulae with respect to a control point vector P.sub.(i,j) expressed by the positional vectors on the first and second patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 : EQU E.multidot.P.sub.(i,j) =P.sub.(i+1,j) ( 4) EQU F.multidot.P.sub.(i,j) =P.sub.(i,j+1) ( 5) EQU (i, jj=0, 1, 2)
Note that u and v are herein prescribed within a range defined by the following formulae: EQU 0.ltoreq.u (6) EQU 0.ltoreq.v (7) EQU u+v.ltoreq.1 (8)
Furthermore, in the formulae (1) and (3), the symbols u and v are parameters in the directions u and v. These parameters are, as illustrated in FIG. 7, capable of expressing coordinates on the free-form surface with respect to the patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 by using coordinates (u,v), wherein a u-axis is taken in the horizontal direction from the nodal vector P.sub.(00), and a v-axis is taken in the vertical direction.
In this definition, a tangent vector taken in the u-direction (i.e., the direction across the common boundary COM) of the first patch vector T.sub.(u,v)1 at the respective points on the common boundary COM is given in the following formula by effecting a first-order partial differentiation of the formula (3) with respect to the parameter u: ##EQU2## where the vector a.sub.0 represents a control edge vector directed from the nodal vector P.sub.(00) to the control point vector P.sub.(10)1. A control edge vector a.sub.j (j=0, 1, 2) can be expressed by the following formula with respect to the first patch vector T.sub.(u,v)1 in combination with the shift operator E: EQU a.sub.j =P.sub.(1,j)1 -P.sub.0,j) (j=0, 1, 2) (10)
Note that the vector a.sub.1 represents a control edge vector directed from the control point vector P.sub.(01) of the common boundary COM to any one of connection internal control point vectors P.sub.(11)1.sup.u=0, P.sub.(11)1.sup.v=0 and , P and P.sub.(11)1 .sup.w=0 of the first patch vector T.sub.(u,v)1. The vector a.sub.2 similarly represents a control edge vector directed from the control point vector P.sub.(02) to the control point vector P.sub.(12)1. Hence, the formula (9) can be transformed into the following formula by using the control edge vectors a.sub.0, a.sub.1 and a.sub.2 : EQU 3(1-v+vF).sup.2 a.sub.0 =3{(1-v).sup.2 a.sub.0 +2(1-v)va.sub.1 +v.sup.2 a.sub.2 } (11)
Similarly, a u-direction tangent vector of the second patch vector T.sub.(u,v)2 on the common boundary COM can be expressed by the following formula by effecting the first-order partial differentiation of the formula (3) with respect to the parameter u: ##EQU3## where the vector c.sub.0 represents a control edge vector directed from the nodal vector P.sub.(00) to the control point vector P.sub.(10)2 of the second patch vector T.sub.(u,v)2. A control edge vector c.sub.j (j=0, 1, 2) is expressible by the following formula with respect to the second patch vector T.sub.(u,v)2 in combination with the shift operator E. EQU c.sub.j =P.sub.(1,j)2 -P.sub.(0,j) (j=0, 1, 2) (13)
Note that the vector c.sub.1 designates a control edge vector directed from the control point vector P.sub.(01) of the common boundary COM to any one of connection internal control point vectors P.sub.(11)2.sup.u=0, P.sub.(11)2.sup.v=0 and P.sub.(11)2.sup.w=0 of the second patch vector T.sub.(u,v)2. The vector c.sub.2 likewise represents a control edge vector directed from the control point vector P.sub.(02) to the control point vector P.sub.(12)2. Therefore, the formula (12) can be transformed into the following formula by employing the control edge vectors c.sub.0, c.sub.1 and c.sub.2 : EQU 3(1-v+vF).sup.2 c.sub.0 =3 {(1-v).sup.2 c.sub.0 +2(1-v)vc.sub.1 +v.sup.2 c.sub.2 } (14)
A v-directional tangent vector on the side of the first patch vector T.sub.(u,v)1 at the respective points on the common boundary COM can be expressed by the following formula by performing the first-order partial differentiation of the formula (3) with respect to the parameter v: ##EQU4## where the vector b1 indicates a control edge vector directed from the nodal vector P.sub.(00) to the control point vector P.sub.(01). A control vector b.sub.j (j=1, 2, 3) is expressible by the following formula with respect to the common boundary COM in combination with the shift operator F. EQU b.sub.j =P.sub.(0,j)2 -P.sub.(0,j-1) (j=1, 2, 3) (16)
Note that the vector b.sub.2 denotes a control edge vector directed from the control point vector P.sub.(01) to the control point vector P.sub.(02). The vector b.sub.3 likewise represents a control edge vector directed from the control point vector P.sub.(02) to the nodal vector P.sub.(03). Hence, the formula (15) can be transformed into the following formula by use of the control edge vectors b.sub.1, b.sub.2 and b.sub.3. EQU 3(1-v+vF).sup.2 b.sub.1 =3{(1-v).sup.2 b.sub.1 +2(1-v)vb.sub.2 +v.sup.2 b.sub.3 } (17)
When stretching the first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 over the two adjacent frame spaces formed by frame processing, the surface on the common boundary COM is in general unsmooth.
In this free-form surface generating method, the two patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 having the common boundary COM are smoothly connected to each other on the common boundary COM. For this purpose, any one of connection internal control point vectors P.sub.(11)1.sup.u=0, P.sub.(11)1.sup.v=0 and P.sub.(11)1.sup.w=0 and any one of P.sub.(11)2.sup.u=0, P.sub.(11)2.sup.v=0 and P.sub.(11)2.sup.w=0 are reset based on any one of u=0, v=0 and w=0 in association with the common boundary COM of the patch vectors T and T.sub.(u,v)1 and T.sub.(u,v)2. Reperformed is an interpolative computation about the free-form surface stretched to the patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 by using these connection internal control point vectors P.sub.(11)1 and P.sub.(11)2.
With this arrangement, it is possible to smoothly connect all the patches over the whole surface framed by the boundary curvilinear network. A multiplicity of objects are thus expressible without making external geometries unnatural.
Note that the smooth connection on the common boundary COM is attainable by obtaining such control edge vectors a.sub.1, c.sub.1 as to satisfy conditions for tangent plane continuity.
Namely, an establishment of conditions for the tangent plane continuity at all the points on the common boundary COM requires that the u-directional tangent vector (expressed by the formulae (9) and (10)) of the first patch vector T(.sub.(u,v)1, the u-directional tangent vector (expressed by the formulae (12) and (13)) of the second patch vector T.sub.(u,v)2 and the v-directional tangent vector (expressed by the formulae (15) and (16)) of the first patch vector T.sub.(u,v)1 exist on the same plane. To accomplish this requirement, the parameters may be reset to meet the condition of the following formula: ##EQU5##
Incidentally, .alpha.(v) and .beta.(v) in the formula (18) are the scalar functions with respect to the parameter v. These scalar functions are selected to satisfy relations of the following formulae: EQU .alpha.(v)=.alpha..sub.0 (1-v)+.alpha..sub.1 v (19) EQU .beta.(v)=.beta..sub.0 (1-v)+.beta..sub.1 v (20)
The formula (18) is herein expressible as a determinant with the aid of the formulae (11), (14) and (17): EQU [1 1][c.sub.0 2c.sub.1 c.sub.2 ]=[.alpha..sub.0 .alpha..sub.1 ][a.sub.0 2a.sub.1 a.sub.2 ]+[.beta..sub.0 .beta..sub.1 ][b.sub.1 2b.sub.2 b.sub.3 ](21)
As a result, the following simultaneous equations are obtained: EQU c.sub.0 =.alpha..sub.0 a.sub.0 +.beta..sub.0 b.sub.1 ( 22) EQU 2c.sub.1 +c.sub.0 =2.alpha..sub.0 a.sub.1 +.alpha..sub.1 a.sub.0 +2.beta..sub.0 b.sub.2 +.beta..sub.1 b.sub.1 ( 23) EQU c.sub.2 +2c.sub.1 =.alpha..sub.0 a.sub.2 +2.alpha..sub.1 a.sub.1 +.beta..sub.0 b.sub.3 +2.beta..sub.1 b.sub.2 ( 24) EQU c.sub.2 =.alpha..sub.1 a.sub.2 +.beta..sub.1 b.sub.3 ( 25)
Note that .alpha..sub.0, .alpha..sub.1, .beta..sub.0, .beta..sub.1, the vector a.sub.1 and the vector c.sub.1 are unknown quantities in the simultaneous equations (22) through (25). It is, however, possible to solve .alpha..sub.0 and .beta..sub.0 from the equation (22). It is also feasible to solve .alpha..sub.1 and .beta..sub.1 from the equation (25).
Furthermore, at this moment the equations (23) and (25) are transformed, thereby obtaining the following formulae: ##EQU6## Hence, the formulae (26) and (27) can be transformed into a determinant expressed as follows: ##EQU7## The unknown quantities a.sub.1 and c.sub.1 can be obtained by solving this determinant.
Set to satisfy the thus obtained control edge vectors a.sub.1 and c.sub.1 are any one of the connection internal control point vectors P.sub.(11).sup.u=0, P.sub.(11).sup.v=0, P.sub.(11)1.sup.w=0 and any one of the vectors P.sub.(11)2.sup.u=0, P.sub.(11)2.sup.v=0, P.sub.(11)2.sup.w=0 with respect to the common boundary COM of the respective trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2. Reeffected at the same time is an interpolative computation of the free-form surface stretched to the patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 by suing those connection internal control point vectors P.sub.(11)1 and P.sub.(11)2.
In this way, the first and second patch vectors R.sub.(u,v)1 and T.sub.(u,v)2 connected to each other through the common boundary COM are connectable smoothly under the conditions for the tangent plane continuity.
The tangent plane is herein defined as a plane formed by the u-and-v-directional tangent vectors at the respective points on the common boundary. Hence, when the tangent planes of the first and second patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are identical, the tangent plane continuity conditions are established.
Note that a tangent plane continuity condition about an arbitrary point vector P.sub.(ov) on the common boundary COM is determined as shown in FIG. 2. To be specific, in connection with the patch vector T.sub.(u,v)1, a normal vector n.sub.1 of a tangent vector H.sub.a in a direction (i.e., the u-direction) across the common boundary COM and a tangent vector H.sub.b in a direction (i.e., the v-direction) along the common boundary COM is expressed by the following formula: EQU n.sub.1 =H.sub.a .times.H.sub.b ( 29)
Expressed similarly with respect to the patch vector T.sub.(u,v)2 is a normal vector n.sub.2 of a tangent vector H.sub.c in the direction across the common boundary COM and the tangent vector H.sub.b in the direction along the common boundary COM. EQU n.sub.2 =H.sub.c .times.H.sub.b ( 30)
To provide the tangent plane continuity under such conditions, the tangent vectors H.sub.1, H.sub.b and H.sub.c have to exist on the same plane. As a result, the respective normal vectors n.sub.1 and n.sub.2 point to the same direction.
Incidentally, the tangent vectors H.sub.1, H.sub.b and H.sub.c are herein given as shown in the following formulae: ##EQU8##
When framing the surface assuming an extremely skewed geometry and having not regularity of array of specified points in this manner, the surface is stretched by use of the trilateral patch vector T.sub.(u,v) expressed by the cubic Bezier-formula. A much finer surface is thereby mathematically expressible.
The first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 which are connected with the common boundary COM being interposed therebetween under the tangent plane continuity conditions by such a free-form data generating method. On this occation, the formula (28) is not solved in some cases.
This takes place when, for instance, control edge vectors b.sub.1, b.sub.2 and b.sub.3 on the common boundary COM exist on the same plane, and if the first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are absolutely symmetrically disposed with respect to the plane including the control edge vectors b.sub.1, b.sub.2 and b.sub.3.
Namely, constants .alpha..sub.0 and .alpha..sub.1 of the scalar function .alpha.(v) described in the formula (19) are equalized (.alpha..sub.0 =.alpha..sub.1) at this time. As a result, in the determinant of (2.times.2) matrix of the left side of the formula (28), as shown by the following formula, a value becomes [0]. ##EQU9## The formula (28) itself eventually becomes indeterminate, with the result that the control edge vectors a.sub.1 and c.sub.1 can not be obtained.
For this reason, the constants .alpha..sub.0 and .alpha..sub.1 are set such as .alpha..sub.0 =.alpha..sub.1 =.alpha.. The formula (22) is substituted into the formula (23), and the following formula is obtained. EQU 2c.sub.1 -2.alpha.a.sub.1 =2.beta..sub.0 b.sub.2 +.beta..sub.1 b.sub.1 -.beta..sub.0 b.sub.1 ( 35)
At the same time, the formula (25) is substituted into the formula (24), whereby the following formula is obtained: EQU 2c.sub.1 -2.alpha.a.sub.1 =.beta..sub.0 b.sub.3 +2.beta..sub.1 b.sub.2 -.beta..sub.1 b.sub.3 ( 36)
Then, the following formula is drawn out from the formulae (35) and (36). EQU 2.beta..sub.0 b.sub.2 +.beta..sub.1 b.sub.1 -.beta..sub.0 b.sub.1 =.beta..sub.0 b.sub.3 +2.beta..sub.1 b.sub.2 -.beta..sub.1 b.sub.3 (.beta..sub.0 -.beta..sub.1)(b.sub.1 -2b.sub.2 +b.sub.3)=0(37)
In this formula, when .beta..sub.0 =.beta..sub.1, .beta..sub.0 =.beta..sub.1 =.beta.. Then, the following formula is obtained from the formula (35). EQU c.sub.1 =.alpha.a.sub.1 +.beta.b.sub.2 ( 38)
Obtained similarly from the formula (36) is the following formula: EQU c.sub.1 =.alpha.a.sub.1 +.beta.b.sub.2 ( 39)
In this way, when .alpha..sub.0 =.alpha..sub.1 and .beta..sub.0 =.beta..sub.1, the vectors a.sub.1, b.sub.2 and c.sub.1 are arranged to exist on the same plane. The first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are connectable under the tangent plane continuity conditions.
In the formula (36), when .alpha..sub.0 =.alpha..sub.1 and .beta..sub.0 =.beta..sub.1, the following equation is to be established: EQU b.sub.1 -2b.sub.2 +b.sub.3 =0 (40)
On this assumption, the first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are connectable under the tangent plane continuity conditions.
In the formula (28), as discussed above, however, when there arises such a case that .alpha..sub.0 =.alpha..sub.1, it is required to retransform each of the control edge vectors a.sub.1, b.sub.2, c.sub.1 and b.sub.1, b.sub.2, b.sub.3 to satisfy the above-mentioned conditions described in the formulae (39) and (40). Troublesome labors are caused in designing by the designer. This implies that the facility is not yet sufficient.
As a matter of fact, when arbitrarily transforming the control edge vectors a.sub.1, b.sub.2, c.sub.1 and b.sub.1, b.sub.2, b.sub.3 in the manner described above, the free-form surface geometry itself expressed by the first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 is transformed correspondingly. A problem still exists, wherein it is impossible to avoid such a possibility that the first and second trilateral patch vectors T.sub.(u,v)1 and T.sub.(u,v)2 are connected in a geometry contrary to the intention of the designer.
Besides, when .expressing the free-form surface with the trilateral patch vector T.sub.(u,v) in this manner, the designer depicts a geometry of the object with aggregates of triangles by connecting all the points of the cubic geomatic data consisting of sets of coordinate data. It is required that the triangles adjacent to each other be reconnected to satisfy the tangent plane continuity conditions described above. This eventually leads to a problem in which the troublesome designing operation by the designer is also needed.